package com.hakgc.rent.service;


import com.hakgc.rent.entity.District;

import java.util.List;

/**
 * 关于区县对象的业务接口
 * @author Xing.Jiejian
 * @date 2020/10/20
 */
public interface DistrictService {
    /**
     * 推荐：关联对象的查询在业务层中实现，不在dao中写关联查询
     * 获取所有的区县，并关联区县中所有的街道
     * @return 包含街道信息的区县集合
     */
    List<District> findAllWithStreet();

    /**
     * 查询所有的区县信息
     * @param isWithStreet 是否需要关联街道
     * @return 区县集合
     */
    List<District> findAll(boolean isWithStreet);

    /**
     * 新增区县
     * @param district 区县对象
     * @return 是否成功
     */
    boolean addDistrict(District district);

    /**
     * 根据编号删除区县
     * @param id 区县编号
     * @return 是否成功删除
     */
    boolean deleteById(int id);

    /**
     * 修改区县信息
     * @param district 区县对象
     * @return 是否成功
     */
    boolean update(District district);

    /**
     * 根据主键查询区县
     * @param id 区县编号
     * @return 区县对象
     */
    District findById(int id);

    /**
     * 根据分页参数查询区县集合
     * @param pageNo 页码
     * @param pageSize 每页显示数量
     * @return 区县集合
     */
    List<District> findByPage(int pageNo,int pageSize);

    /**
     * 获取分页区县数据
     * @param likeName 模糊查询的区县名;如果没有传入区县名称，则表示查询所有区县
     * @param pageNo 页码
     * @param pageSize 每页显示数量
     * @return 分页集合
     */
    List<District> findByPage(String likeName, int pageNo,int pageSize);

    /**
     * 获取区县总条数
     * @return 区县数量
     */
    int getAllCount();

    /**
     * 获取模糊查询的总条数
     * @param likeName 区县名
     * @return 区县数量
     */
    int getAllCount(String likeName);
}
